define(function(require){
	/* jQuery 方法扩展 */
    (function($){
    	/* 自定义元素方法 */
    	$.extend($.fn,{
    		/**
        	 * @name $.fn#initUI
    	     * @function   
    	     * @desc 格式化UI。
    	     * @param {Function} callback
    	     */
    		initUI: function(callback){
    			return this.each(function(){
    				semi.utils.initUI(this, callback);
    			});
    		},
    		/**
        	 * @name $.fn#hoverClass
    	     * @function   
    	     * @desc 鼠标经过className替换。
    	     * @param {String} className
    	     */
        	hoverClass:function(className){
    			var _className = className || 'hover';
    			return this.each(function(){
    				$(this).hover(function(){
    					$(this).addClass(_className);
    				},function(){
    					$(this).removeClass(_className);
    				});
    			});
    		},
    		/**
        	 * @name $.fn#isTag
    	     * @function   
    	     * @desc 标签判断。
    	     * @param {String} name
    	     */
        	isTag:function(name) {
    			if(!name || $(this)[0]==undefined || $(this)[0].tagName==undefined) return false;
    			return $(this)[0].tagName.toLowerCase() == name?true:false;
    		},
    		/**
        	 * @name $.fn#fixedth
    	     * @function   
    	     * @desc 固定td。
    	     * @param {String} class
    	     */
    		fixedth: function(className){
    			var $table = $(this), $parent = $table.parent();
    			if((semi.utils.isEmpty(className) || typeof className!='string' || $('.'+className,$table).size()<1) && $('[fixedth]',$table).size()<1)return;
    			if($parent.hasClass('responsive-table')){
    				$('.fixedtable',fixedtable).remove();
    			}else{
    				$table.wrap('<div class="responsive-table" style="position:relative;overflow:hidden;"></div>');
    			}
    			var $parent = $table.parent(),
    				$fixedtable = $table.clone().addClass('fixedtable').removeAttr('id').css({'position':'absolute', 'top':'0', 'z-index':'10'}), 
    				$th = $('.'+className+',[fixedth]',$fixedtable)
    				_arr = [];
    			$('[id]',$fixedtable).removeAttr('id');
    			$('thead tr:first',$fixedtable).children().each(function(index){
    				if($th.filter($(this)).size()<1){
    					$(this).remove();
    					_arr.push(index);
    				}
    			});
    			$('tbody tr',$fixedtable).each(function(){
    				$(this).children().each(function(index){
    					if(semi.utils.inArray(index, _arr)!=-1){
        					$(this).remove();
        				}
    				});
    			});
    			$parent.append($fixedtable.width($th.width()));
    		}
    	});
	})(jQuery);
});